package work.linruchang.oauthresourceproject.config.oauth;

import lombok.Data;

import java.io.Serializable;

/**
 * 授权信息
 *
 * @author LinRuChang
 * @version 1.0
 * @date 2022/08/19
 * @since 1.8
 **/
@Data
public class AuthorizeInfo implements Serializable {

    private static final long serialVersionUID = -2956339912880267567L;
    //=======获取授权码所需的参数============
    String client_id;

    String redirect_uri;

    /**
     * 参考{@link ResponseType#RESPONSE_TYPE_CODE}
     */
    String response_type;

    /**
     * 参考{@link Scope#SCOPE_USER_INFO}
     */
    String scope;

    String state;


    //=======获取accss_token密钥所需的参数============

    /**
     * 参考{@link GrantType#GRANT_TYPE_AUTHORIZATION_CODE}
     */
    String grant_type;

    String code;

    String client_secret;

    /**
     * 刷新token，用于生成新的access_token以及refresh_token
     */
    String refresh_token;

    /**
     * {@link AuthorizeInfo#grant_type}为{@link GrantType#GRANT_TYPE_PASSWORD}的时候才使用
     */
    String oauthUsername;
    String oauthPassword;

    /**
     * {@link AuthorizeInfo#grant_type}为{@link GrantType#GRANT_TYPE_REFRESH_TOKEN}的时候才使用
     */
    String credentials;


}
